説明
バグレポート
テキストフィールドの作成とスタイル設定
テキスト フィールドを使用すると、ユーザーはアプリにテキストを入力できます。 これらはフォームを構築するために使用されます。 メッセージの送信、検索エクスペリエンスの作成など。 このレシピでは、テキストフィールドを作成してスタイルを設定する方法を検討します。
Flutter には 2 つのテキスト フィールドが用意されています。TextField
とTextFormField
。
TextField
TextField
最も一般的に使用されるテキスト入力ウィジェットです。
デフォルトでは、TextField
下線で装飾されています。
ラベル、アイコン、インラインヒントテキスト、エラーテキストを追加するには、InputDecoration
としてdecoration
の財産TextField
。
装飾を完全に除去するには(
下線とラベル用に確保されたスペース)、
をセットするdecoration
ヌルにします。
TextField(
decoration: InputDecoration(
border: OutlineInputBorder(),
hintText: 'Enter a search term',
),
),
値が変更されたときに値を取得するには、 を参照してくださいテキストフィールドへの変更を処理するレシピ。
TextFormField
TextFormField
を包みますTextField
そしてそれを統合します
同梱物と一緒にForm
。
これにより追加の機能が提供されます。
検証や他の機能との統合などFormField
ウィジェット。
TextFormField(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
labelText: 'Enter your username',
),
),
インタラクティブな例
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
const appTitle = 'Form Styling Demo';
return MaterialApp(
title: appTitle,
home: Scaffold(
appBar: AppBar(
title: const Text(appTitle),
),
body: const MyCustomForm(),
),
);
}
}
class MyCustomForm extends StatelessWidget {
const MyCustomForm({super.key});
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
const Padding(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 16),
child: TextField(
decoration: InputDecoration(
border: OutlineInputBorder(),
hintText: 'Enter a search term',
),
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
child: TextFormField(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
labelText: 'Enter your username',
),
),
),
],
);
}
}
入力検証の詳細については、「検証を伴うフォームの構築レシピ。